package com.example.demo.service;

import com.example.demo.entity.DTO.GoodsDTO;
import com.example.demo.entity.DTO.GoodsNewDTO;
import com.example.demo.entity.Goods;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.demo.entity.VO.GoodsVO;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 商品表 服务类
 * </p>
 *
 * @author Mr.Xiayh
 * @since 2024-06-04
 */
public interface IGoodsService extends IService<Goods> {
    List<GoodsDTO> findAllByCriteria(Goods goods);
    /**
     * 根据商品id获取商品信息
     *
     * @param prodId
     * @return
     */
    Goods getGoodsByProdId(Long prodId);
    /**
     * 根据商品id删除商品
     * @param prodId
     */
    void removeGoodsByProdId(Long prodId);

    /**
     * 根据商品id删除缓存
     * @param prodId
     */
    void removeGoodsCacheByProdId(Long prodId);
    /**
     * 查询所有
     */
    List<GoodsDTO> findAll();
    /**
     * 查询所有新商品
     */
    List<GoodsNewDTO> queryList(Map<String, Object> param);

    /**
     * 添加商品
     * @param goods
     * @return
     */
    boolean addGoods(Goods goods);
    /**
     * 查询商品对象
     */
    GoodsDTO queryObject(Integer id);
    /**
     * 查询商品总数
     */
    int queryTotal(Map<String, Object> map);
}
